#include<iostream>

struct Detection_ {
    float conf;  // 类别置信度
    size_t clas_id;  // 类别索引
    int *box_array;  // 存放4个坐标数组的指针 [x,y,w,h]
};

class YoloDetect {
};

extern "C"
{
//engine_file是模型全路径   conf_threshold是置信度阈值，一般为0.3  返回初始化模型对象指针
__declspec(dllimport) YoloDetect *InitDetect(const char *engine_file, const float &conf_threshold);
// ud：传入上面模型对象指针  图像height、width  img_data：图像展开的一维数组指针  result_size：返回存储框数组的大小
// 返回值为数组指针，里面存放的是每个框的结构体
__declspec(dllimport) Detection_ *
OutResult(YoloDetect *ud, int &height, int &width, const unsigned char *img_data, size_t &result_size);
// 释放堆区数据，result：上面函数返回的结果  result_size：存储框数组的大小
__declspec(dllimport) void FreeResult(Detection_ *result, size_t &result_size);
}
